package com.kongjs.application.controller.rest;

import com.kongjs.application.model.dto.*;
import com.kongjs.common.rest.annotation.Rest;
import org.springframework.web.bind.annotation.*;

/**
 * 快递员操作接口
 */
@Rest
@RestController
@RequestMapping("/couriers")
public class CourierController {

    /**
     * 获取待取件任务列表
     *
     * @param courierId 快递员ID
     * @param status    任务状态（可选）
     * @return 任务列表
     */
    @GetMapping("/pickup-tasks/{courierId}/page")
    public PageDTO<PickupTaskDTO> getPickupTasks(@PathVariable String courierId, @RequestParam(required = false) String status) {
        return null;
    }

    /**
     * 确认取件
     *
     * @param taskId        任务ID
     * @param pickupConfirmDTO 取件请求
     * @return 更新后的任务
     */
    @PostMapping("/pickup-tasks/{taskId}/confirm")
    public PickupTaskDTO confirmPickup(@PathVariable String taskId, @RequestBody PickupConfirmDTO pickupConfirmDTO) {
        return null;
    }

    /**
     * 获取待派送任务列表
     *
     * @param courierId 快递员ID
     * @param status    任务状态（可选）
     * @return 任务列表
     */
    @GetMapping("/delivery-tasks/{courierId}/list")
    public PageDTO<DeliveryTaskDTO> getDeliveryTasks(@PathVariable String courierId, @RequestParam(required = false) String status) {
        return null;
    }

    /**
     * 确认发货
     *
     * @param taskId 任务ID
     * @return 更新后的任务
     */
    @PostMapping("/delivery-tasks/{taskId}/ship")
    public DeliveryTaskDTO confirmShipment(@PathVariable String taskId) {
        return null;
    }

    /**
     * 确认签收
     *
     * @param taskId          任务ID
     * @param deliveryConfirmDTO 派送请求（包含照片）
     * @return 更新后的任务
     */
    @PostMapping("/delivery-tasks/{taskId}/deliver")
    public DeliveryTaskDTO confirmDelivery(@PathVariable String taskId, @RequestBody DeliveryConfirmDTO deliveryConfirmDTO) {
        return null;
    }
}